/*
 * Copyright (c) 2025 CAX Conversion Project
 */
package com.comac.ins.isfd.service;

import java.util.Collection;
import java.util.Date;
import java.util.List;

import com.comac.ins.common.mybatis.core.page.TableDataInfo;
import com.comac.ins.isfd.domain.bo.IsfdSectionBo;
import com.comac.ins.isfd.domain.bo.query.IsfdSectionQueryBo;
import com.comac.ins.isfd.domain.vo.IsfdSectionCountResultObjectVo;
import com.comac.ins.isfd.domain.vo.IsfdSectionVo;

/**
 * 型材库抽象接口层
 *
 * @author hxloongs
 * @date 2024-7-30
 */
public interface IIsfdSectionService {

    String selectByType();

    double[] calculate(IsfdSectionBo isfdSectionBo);

    /**
     * 校验幂等
     * 返回是否是新增还是修改的标识
     */
    Boolean checkUnique(IsfdSectionBo isfdSectionBo, String hashUniqueKey);

    Boolean save(IsfdSectionBo isfdSectionBo);

    TableDataInfo<IsfdSectionVo> queryPage(IsfdSectionQueryBo bo);

    Boolean deleteWithValidByIds(Collection<Long> ids);


    /**
     * 型材库数据数量，字段查询
     *
     * @return 算例
     */
    List<IsfdSectionCountResultObjectVo> listCountByListByField(String field);

    /**
     * 创建时间数据数量
     *
     * @return 结果
     */
    List<IsfdSectionCountResultObjectVo> listTimeCount(String field, Date startTime, Date endTime);
}
